﻿<?xml version="1.0" encoding="utf-8"?>
<developerOrientationDocument
  xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"
  xmlns:xlink="http://www.w3.org/1999/xlink">

  <!--
  <summary>
    <para>Optional summary abstract</para>
  </summary>
  -->

  <introduction>
    <para>This library wraps the VMware VixCOM-API into an object-orientated library in C# with IntelliSense support and exception throwing.</para>
	<para/>
	<para>The current implementation uses VIX-API 1.6.2 and allows automating common tasks for Virtual Machines. For a list of functions see the included help.</para>
	<para/>
	<para>Although the VIX-API provides a COM binding (called VixCOM) that can be used in .NET, the functions and especially their parameters look different from what we are used to in .NET languages (because the original API was written in C++).</para>
	<para>This library wraps the VixCOM-API and allows you to control VMs in a way you are familiar with, including <legacyBold>full IntelliSense support</legacyBold> in Visual Studio. The description of the functions and parameters was taken directly from the VMware VIX documentation and was also extended where appropriate.</para>
	<para/>
	<para>The functions of this library are implemented <legacyBold>synchronously</legacyBold> (that means they return when the action completes), which hides you from the need of using callback-functions or polling/blocking, like you had to with the original API. If you need to run severeral tasks at a time, I suggest putting each task in a thread. According to the documentation, the VIX-API should be thread-safe and handle calls from different thread appropriately.</para>
	<para/>
	<para>Another benefit of this library is that it <legacyBold>throws exceptions</legacyBold> when an error in a VIX function occurs, while the original API only returns an error code.</para>
	<para/>
	<para>If you need further information on the VIX-API itself, visit the <externalLink><linkText>VMware VIX API homepage</linkText><linkUri>http://www.vmware.com/support/developer/vix-api/</linkUri></externalLink>.</para>
	<para/>
    <para>For the latest releases and source-code, visit the <externalLink><linkText>project's homepage</linkText><linkUri>http://www.codeplex.com/VixCOMWrapper/</linkUri></externalLink> on Codeplex.</para>
  </introduction>

  <!-- <inThisSection>Optional description of content in this section</inThisSection> -->

  <!-- <reference>Optional reference section</reference> -->

  <!-- <relatedSections>Optional related sections info</relatedSections> -->

  <!-- <externalResources>Optional external resources section</externalResources> -->

  <relatedTopics>
    <!-- One or more of the following:
         - A local link
         - An external link
         - A code entity reference

    <link xlink:href="Other Topic's ID">Link text</link>
    <externalLink>
        <linkText>Link text</linkText>
        <linkAlternateText>Optional alternate link text</linkAlternateText>
        <linkUri>URI</linkUri>
    </externalLink>
    <codeEntityReference>API member ID</codeEntityReference>

    Examples:

    <link xlink:href="00e97994-e9e6-46e0-b420-5be86b2f8278">Some other topic</link>

    <externalLink>
        <linkText>SHFB on CodePlex</linkText>
        <linkAlternateText>Go to CodePlex</linkAlternateText>
        <linkUri>http://www.codeplex.com/SHFB</linkUri>
    </externalLink>

    <codeEntityReference>T:TestDoc.TestClass</codeEntityReference>
    <codeEntityReference>P:TestDoc.TestClass.SomeProperty</codeEntityReference>
    <codeEntityReference>M:TestDoc.TestClass.#ctor</codeEntityReference>
    <codeEntityReference>M:TestDoc.TestClass.#ctor(System.String,System.Int32)</codeEntityReference>
    <codeEntityReference>M:TestDoc.TestClass.ToString</codeEntityReference>
    <codeEntityReference>M:TestDoc.TestClass.FirstMethod</codeEntityReference>
    <codeEntityReference>M:TestDoc.TestClass.SecondMethod(System.Int32,System.String)</codeEntityReference>
    -->
  </relatedTopics>
</developerOrientationDocument>
